package com.hx.study.domain;

import java.util.List;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hx.common.annotation.Excel;
import com.hx.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 试卷对象 el_paper
 *
 * @author user
 * @date 2022-06-07
 */
public class Paper extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 试卷ID
     */
    private Integer id;

    /**
     * 标题
     */
    @Excel(name = "标题")
    private String title;

    /**
     * 时长
     */
    @Excel(name = "时长")
    private Integer totalTime;

    /**
     * 总分
     */
    @Excel(name = "总分")
    private Integer totalScore;

    /**
     * 及格分
     */
    @Excel(name = "及格分")
    private Integer qualifyScore;

    /**
     * 试卷状态
     */
    @Excel(name = "试卷状态")
    private String status;

    /**
     * 截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date limitTime;

    /**
     * 限制次数
     */
    @Excel(name = "限制次数")
    private Integer limitCount;

    /**
     * 考试题库信息
     */
    private List<PaperRepository> paperRepositoryList;

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setTotalTime(Integer totalTime) {
        this.totalTime = totalTime;
    }

    public Integer getTotalTime() {
        return totalTime;
    }

    public void setTotalScore(Integer totalScore) {
        this.totalScore = totalScore;
    }

    public Integer getTotalScore() {
        return totalScore;
    }

    public void setQualifyScore(Integer qualifyScore) {
        this.qualifyScore = qualifyScore;
    }

    public Integer getQualifyScore() {
        return qualifyScore;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setLimitTime(Date limitTime) {
        this.limitTime = limitTime;
    }

    public Date getLimitTime() {
        return limitTime;
    }

    public void setLimitCount(Integer limitCount) {
        this.limitCount = limitCount;
    }

    public Integer getLimitCount() {
        return limitCount;
    }

    public List<PaperRepository> getPaperRepositoryList() {
        return paperRepositoryList;
    }

    public void setPaperRepositoryList(List<PaperRepository> paperRepositoryList) {
        this.paperRepositoryList = paperRepositoryList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("title", getTitle())
                .append("totalTime", getTotalTime())
                .append("totalScore", getTotalScore())
                .append("qualifyScore", getQualifyScore())
                .append("status", getStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("limitTime", getLimitTime())
                .append("limitCount", getLimitCount())
                .append("paperRepositoryList", getPaperRepositoryList())
                .toString();
    }
}
